היי כולם,
אני רוצה להציג רק את האות הראשונה של סטרינג שכתוב בשפה העברית.
כלןמר את האות א'
בינתיים ניסיתי את הקוד הבא:

$wFname = 'אבגד';
$result = mb_substr($wFname, -1);
echo $result;


התוצאה של סטרינג זה היא סימן שאלה עם רקע שחור בצורת יהלום.


הדף מקודד ב utf8 without bom
כל האתר מקודד ב-UTF 8

לדעתי הבעיה היא שהפונקציה (mb_substr) לא תומכת בעברית.

אשמח אם מישהו יוכל לכוון אותי לפתרון הנכון
תודה.
דוד

2 תשובות

avatar ענה intval ב 02 לאוגוסט 2014 #

מבחינת utf ומבחינת הרחבת mb אין שום הבדל בין עברית לכל שפה אחרת והבעיה היא לא בתימכה, אלא בזה, שעד 5.6 קידוד ברירת המחדל שאיתו עבדה mb לא היה utf8 ולכן יש להשתמש בפרמטר הרביעי - קידוד - כדי לקבל את התוצאה המתאימה.
שים לב גם שבדוקומנטציה של mb_substr לאומת substr רגיל לא כתוב שום דבר על מיקומים שלילים (למרות שזה בטח יעבוד) וכדי לקבל את האות א' עליך לקחת תו באורך 1 מהמיקום ה0 במחרוזת.


$str = 'אבג';
echo mb_substr($str, 0, 1, 'UTF-8');

avatar ענה David ב 03 לאוגוסט 2014 #

תשובה מפורטת מאוד.
הוספתי פרמטר רביעי והבעיה אכן הסתדרה.
תודה רבה!
.